{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "73db91ed-e898-46d5-a90b-e3b932bd7c88",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Logistic Regression Accuracy (Binary Classification): 0.8500\n",
      "SVM Accuracy (Binary Classification): 0.8433\n",
      "Decision Tree Accuracy (Multiclass Classification): 0.7333\n",
      "Random Forest Accuracy (Multiclass Classification): 0.8367\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets import make_classification\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 1. 生成二分类虚拟数据\n",
    "X_bin, y_bin = make_classification(n_samples=1000, n_features=20, n_informative=2, n_classes=2, random_state=42)\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train_bin, X_test_bin, y_train_bin, y_test_bin = train_test_split(X_bin, y_bin, test_size=0.3, random_state=42)\n",
    "\n",
    "# 数据标准化\n",
    "scaler = StandardScaler()\n",
    "X_train_bin = scaler.fit_transform(X_train_bin)\n",
    "X_test_bin = scaler.transform(X_test_bin)\n",
    "\n",
    "# 训练逻辑回归模型\n",
    "log_reg = LogisticRegression()\n",
    "log_reg.fit(X_train_bin, y_train_bin)\n",
    "\n",
    "# 预测和评估\n",
    "y_pred_bin_log_reg = log_reg.predict(X_test_bin)\n",
    "log_reg_acc = accuracy_score(y_test_bin, y_pred_bin_log_reg)\n",
    "print(f\"Logistic Regression Accuracy (Binary Classification): {log_reg_acc:.4f}\")\n",
    "\n",
    "# 训练支持向量机（SVM）模型\n",
    "svm = SVC()\n",
    "svm.fit(X_train_bin, y_train_bin)\n",
    "\n",
    "# 预测和评估\n",
    "y_pred_bin_svm = svm.predict(X_test_bin)\n",
    "svm_acc = accuracy_score(y_test_bin, y_pred_bin_svm)\n",
    "print(f\"SVM Accuracy (Binary Classification): {svm_acc:.4f}\")\n",
    "\n",
    "# 2. 生成多分类虚拟数据\n",
    "X_multi, y_multi = make_classification(n_samples=1000, n_features=20, n_informative=5, n_classes=3, random_state=42)\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train_multi, X_test_multi, y_train_multi, y_test_multi = train_test_split(X_multi, y_multi, test_size=0.3, random_state=42)\n",
    "\n",
    "# 训练决策树模型\n",
    "dtree = DecisionTreeClassifier()\n",
    "dtree.fit(X_train_multi, y_train_multi)\n",
    "\n",
    "# 预测和评估\n",
    "y_pred_multi_dtree = dtree.predict(X_test_multi)\n",
    "dtree_acc = accuracy_score(y_test_multi, y_pred_multi_dtree)\n",
    "print(f\"Decision Tree Accuracy (Multiclass Classification): {dtree_acc:.4f}\")\n",
    "\n",
    "# 训练随机森林模型\n",
    "rf = RandomForestClassifier()\n",
    "rf.fit(X_train_multi, y_train_multi)\n",
    "\n",
    "# 预测和评估\n",
    "y_pred_multi_rf = rf.predict(X_test_multi)\n",
    "rf_acc = accuracy_score(y_test_multi, y_pred_multi_rf)\n",
    "print(f\"Random Forest Accuracy (Multiclass Classification): {rf_acc:.4f}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f383baae-df4a-4e25-ad04-493bc35029e9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion Matrix:\n",
      "[[4 1]\n",
      " [2 3]]\n",
      "True Negative (TN): 4\n",
      "False Positive (FP): 1\n",
      "False Negative (FN): 2\n",
      "True Positive (TP): 3\n"
     ]
    },
    {
     "data": {
      "image/png": "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DpD76omIiCTGSgAREcmLlQAiIiKSESsBREQkLwPODiAiIiIJsRJARETyknxMAJMAIiKSF28WRERERDJiJYCIiOQleXeA3FdPREQkMVYCiIhIXhwTQERERDJiJYCIiOTFMQFEREQkI1YCiIhIXpKPCWASQERE8mJ3ABEREcmIlQAiIpKX5N0BrAQQERFJipUAIiKSF8cEEBERkYxYCSAiInlxTAARERHJiJUAIiKSl+RjApgEEBGRvCRPAuS+eiIiIomxEkBERPLiwEAiIiKSESsBREQkL44JICIiIhmxEkBERPLimAAiIiKSESsBREQkL8nHBDAJICIiebE7gIiIiGTESgAREUlLxUoAERERyYiVACIikhYrAURERCQlVgKIiEhechcCWAkgIiKSFSsBREQkLdnHBDAJICIiacmeBLA7gIiISFKsBBARkbRYCSAiIiIpsRJARETSYiWAiIiIpMRKABERyUvuQgArAUREREqKiIhA06ZNYWVlBSsrK/j6+mLPnj3Ftj948CBUKlWh5fz58zqfm5UAIiKSVkUYE1CnTh3MnTsX7u7uAIC1a9fijTfeQEJCAry8vIrd78KFC7CystK8rlWrls7nZhJARESkoJ49e2q9/vzzzxEREYFjx46VmATY2dmhevXqL3RudgcQEZG0iiqrl9WSlZWFjIwMrSUrK6vEePLy8rBx40ZkZmbC19e3xLbe3t5wdHREp06dcODAgee6fiYBREQkLX0mAWFhYbC2ttZawsLCiowjMTERFhYWUKvVGDVqFLZt2wZPT88i2zo6OmL58uWIjo7G1q1b4eHhgU6dOuHw4cO6X78QQui8VwVn5j1G6RCI9O5e3BKlQyDSO1M9d1rbDPxWb8dOXdmn0Dd/tVoNtVpdqG12djZSUlJw//59REdHY+XKlTh06FCxicDTevbsCZVKhR07dugUI8cEEBGRtPQ5MLC4P/hFMTEx0QwM9PHxQVxcHL766it8/fXXpdq/VatWWL9+vc4xsjuAiIioghFCPHP8wL8lJCTA0dFR5/OwEkBERPJSfoYgpk6dim7duqFu3br4559/sHHjRhw8eBAxMTEAgJCQEFy7dg3r1q0DAISHh6NevXrw8vJCdnY21q9fj+joaERHR+t8biYBRERECrpx4wYGDhyI1NRUWFtbo2nTpoiJiUHnzp0BAKmpqUhJSdG0z87OxqRJk3Dt2jWYmZnBy8sLu3btQkBAgM7n5sBAokqKAwNJBvoeGFhz8Ea9Hft2VD+9HbuscEwAERGRpNgdQERE0qoItw1WEpMAIiKSluxJALsDiIiIJMVKABERyUvuQgArAURERLJiJYCIiKTFMQFEREQkJVYCiIhIWrJXAhRNAjIzM/Htt9/i6NGjSEtLg0qlgr29Pdq0aYN3330X5ubmSoZHRERUpSnWHfD777+jYcOGCA4Oxr179+Ds7Iw6derg3r17mDx5Mjw8PPD7778rFR4REUlApVLpbakMFKsEjB49Gu3bt8fatWthYmKitS07OxuDBw/G6NGjceDAAYUiJCKiqq6y/LHWF8WSgOPHjyM+Pr5QAgAAJiYmmDp1Kl5++WUFIiMiIpKDYt0BNWrUwB9//FHs9kuXLqFGjRrlGBEREUlHpcelElCsEjBixAgEBgZi+vTp6Ny5M+zt7aFSqZCWloaff/4Zc+bMwYQJE5QKj4iIqMpTLAmYNWsWzMzM8OWXXyI4OFjTLyOEgIODAz7++GMEBwcrFR4REUmAYwIUNGXKFEyZMgXJyclIS0sDADg4OMDV1VXJsIiIiKRQIW4W5Orqyj/8RERU7mSvBPC2wURERJKqEJUAIiIiJcheCWASQERE8pI7B2B3ABERkawUTwJiYmLw66+/al4vXboUzZs3R//+/XHv3j0FIyMioqpO9mcHKJ4ETJ48GRkZGQCAxMREfPTRRwgICMDly5cRFBSkcHRERERVl+JjApKTk+Hp6QkAiI6ORo8ePTBnzhycOnUKAQEBCkdHRERVWWX5xq4vilcCTExM8PDhQwDAL7/8gi5dugAAbGxsNBUCIiIiKnuKJwFt27ZFUFAQPv30U5w4cQLdu3cHAFy8eBF16tRRODrSxaShXfAoYQm+mNRH6VCIyszJ+DiM/XAUXuvQFs28PLB/3y9Kh0RliGMCFLZkyRIYGRlhy5YtiIiIQO3atQEAe/bsQdeuXRWOjkqrhaczhvVujbMX/1Y6FKIy9ejRQ3h4eODjaTOVDoWozCk+JsDZ2Rk//vhjofULFy5UIBp6HuZmJlgzZzA+/PQ7fDyciRtVLW3b+aFtOz+lwyA9qSzf2PVF8UrAqVOnkJiYqHm9fft29OrVC1OnTkV2draCkVFphYf0RcyR/+HA8QtKh0JEpBuVHpdKQPEkYOTIkbh48SIA4PLly+jXrx+qVauGzZs3l+pRwllZWcjIyNBaRH6evsOm/+9t/xZo3qguZizeoXQoRESkI8WTgIsXL6J58+YAgM2bN6N9+/b49ttvERUVhejo6GfuHxYWBmtra60l98ZJPUdNAFDHvjq+mNwHQ6evRVZ2rtLhEBHpTPaBgYqPCRBCID8/H8CTKYI9evQAANStWxe3b99+5v4hISGFbipk125K2QdKhXg3doa9rRWObvi/io2RkSHavlQfo/q2h/UrE5CfLxSMkIiISqJ4EuDj44PPPvsMr732Gg4dOoSIiAgAT24iZG9v/8z91Wo11Gq11jqVgaFeYiVtB05cQIu3Ptdat3z2e7iQfAP/jfqZCQARVXiV5Ru7viieBISHh2PAgAH44YcfMG3aNLi7uwMAtmzZgtatWyscHZXkwcMs/P5nqta6zEfZuJueWWg9UWX1MDMTKSkpmtfX/v4b55OSYG1tDUcnJwUjI3pxiicBTZs21ZodUOCLL76AoSG/0RORss6d+x+GDxmkeb1gfhgA4PU33sSnc+YqFRaVEckLAconAcUxNTVVOgR6Dv4jvlI6BKIy1fLlV3DmHKe/UtWkeBKQl5eHhQsXYtOmTUhJSSl0b4C7d+8qFBkREVV1so8JUHyK4OzZs/Hll1/inXfeQXp6OoKCgtC7d28YGBhg1qxZSodHRERVmEqlv6UyUDwJ2LBhA1asWIFJkybByMgI7777LlauXImZM2fi2LFjSodHRERUZSmeBKSlpaFJkyYAAAsLC6SnpwMAevTogV27dikZGhERVXGy3yxI8SSgTp06SE19Mp3M3d0de/fuBQDExcUVmv9PREREZUfxJODNN9/Evn37AADjx4/HjBkz0KBBAwwaNAhDhw5VODoiIqrKZB8ToPjsgLlz/2+e7VtvvYU6derg6NGjcHd3x+uvv65gZERERFWb4knA01q1aoVWrVopHQYREUnAwKCSfGXXE0WSgB07Sv/YWVYDiIiI9EORJKBXr16laqdSqZCXl6ffYIiISFqVpe9eXxRJAgoeHUxERKSkyjKVT18Unx1AREREylAsCdi/fz88PT2RkZFRaFt6ejq8vLxw+PBhBSIjIiJZyD5FULEkIDw8HCNGjICVlVWhbdbW1hg5ciQWLlyoQGRERERyUCwJOHPmDLp27Vrs9i5duuDkyZPlGBEREcmGtw1WyI0bN2BsbFzsdiMjI9y6dascIyIiIpKLYklA7dq1kZiYWOz2s2fPwtHRsRwjIiIi2bASoJCAgADMnDkTjx8/LrTt0aNHCA0NRY8ePRSIjIiISA6K3TZ4+vTp2Lp1Kxo2bIgxY8bAw8MDKpUKSUlJWLp0KfLy8jBt2jSlwiMiIglUki/seqNYEmBvb4+jR4/igw8+QEhICIQQAJ6UZvz9/bFs2TLY29srFR4REUmgspTt9UXRBwi5uLhg9+7duHfvHi5dugQhBBo0aIAaNWooGRYREZEUKsRTBGvUqIGWLVsqHQYREUlG8kIAbxtMREQkqwpRCSAiIlKC7GMCWAkgIiKSFCsBREQkLckLAawEEBERyYqVACIikhbHBBAREZGUmAQQEZG0VCr9LaUVERGBpk2bwsrKClZWVvD19cWePXtK3OfQoUNo0aIFTE1N4ebmhsjIyOe6fiYBREQkrYrwFME6depg7ty5iI+PR3x8PF599VW88cYbOHfuXJHtk5OTERAQgHbt2iEhIQFTp07FuHHjEB0drfP1c0wAERGRgnr27Kn1+vPPP0dERASOHTsGLy+vQu0jIyPh7OyM8PBwAEDjxo0RHx+PBQsWoE+fPjqdm0kAERFJS5/jArOyspCVlaW1Tq1WQ61WF7tPXl4eNm/ejMzMTPj6+hbZJjY2Fl26dNFa5+/vj1WrViEnJwfGxsaljpHdAURERHoQFhYGa2trrSUsLKzItomJibCwsIBarcaoUaOwbds2eHp6Ftk2LS2t0FN27e3tkZubi9u3b+sUIysBREQkLX1OEQwJCUFQUJDWuuKqAB4eHjh9+jTu37+P6OhoBAYG4tChQ8UmAk/HLYQocv2zMAkgIiLSg2eV/v/NxMQE7u7uAAAfHx/ExcXhq6++wtdff12orYODA9LS0rTW3bx5E0ZGRrC1tdUpRiYBREQkrYp6ryAhRKHxBAV8fX2xc+dOrXV79+6Fj4+PTuMBAI4JICIiUtTUqVNx5MgRXLlyBYmJiZg2bRoOHjyIAQMGAHjSrTBo0CBN+1GjRuHq1asICgpCUlISVq9ejVWrVmHSpEk6n5uVACIiklZFuG3wjRs3MHDgQKSmpsLa2hpNmzZFTEwMOnfuDABITU1FSkqKpr2rqyt2796NiRMnYunSpXBycsKiRYt0nh4IACpRMJqgCjHzHqN0CER6dy9uidIhEOmdqZ6/qrZdcERvx/51Uju9HbussDuAiIhIUuwOICIiaVWE7gAlsRJAREQkKVYCiIhIWqwEEBERkZRYCSAiImlJXghgJYCIiEhWrAQQEZG0ZB8TwCSAiIikJXkOwO4AIiIiWbESQERE0pK9O4CVACIiIkmxEkBERNKSvBDASgAREZGsWAkgIiJpGUheCmAlgIiISFKsBBARkbQkLwQwCSAiInlxiiARERFJiZUAIiKSloHchQBWAoiIiGTFSgAREUmLYwKIiIhISqwEEBGRtCQvBLASQEREJCtWAoiISFoqyF0KYBJARETS4hRBIiIikhIrAUREJC1OESQiIiIpsRJARETSkrwQwEoAERGRrFgJICIiaRlIXgpgJYCIiEhSrAQQEZG0JC8EMAkgIiJ5yT5FsFRJwI4dO0p9wNdff/25gyEiIqLyU6okoFevXqU6mEqlQl5e3ovEQ0REVG4kLwSULgnIz8/XdxxERERUzl5oTMDjx49hampaVrEQERGVK04R1FFeXh4+/fRT1K5dGxYWFrh8+TIAYMaMGVi1alWZB0hERET6oXMS8PnnnyMqKgrz58+HiYmJZn2TJk2wcuXKMg2OiIhIn1R6XCoDnZOAdevWYfny5RgwYAAMDQ0165s2bYrz58+XaXBERESkPzqPCbh27Rrc3d0Lrc/Pz0dOTk6ZBEVERFQeZL9PgM6VAC8vLxw5cqTQ+s2bN8Pb27tMgiIiIioPBir9LZWBzpWA0NBQDBw4ENeuXUN+fj62bt2KCxcuYN26dfjxxx/1ESMRERHpgc6VgJ49e+L777/H7t27oVKpMHPmTCQlJWHnzp3o3LmzPmIkIiLSC5VKpbelMniu+wT4+/vD39+/rGMhIiKicvTcNwuKj49HUlISVCoVGjdujBYtWpRlXERERHpXSb6w643OScDff/+Nd999F7/99huqV68OALh//z5at26N7777DnXr1i3rGImIiEgPdB4TMHToUOTk5CApKQl3797F3bt3kZSUBCEEhg0bpo8YiYiI9IJjAnR05MgRHD16FB4eHpp1Hh4eWLx4Mdq0aVOmwREREZH+6JwEODs7F3lToNzcXNSuXbtMgiIiIioPlWU+v77o3B0wf/58jB07FvHx8RBCAHgySHD8+PFYsGBBmQdIRESkL+wOKIUaNWpoXVBmZiZeeeUVGBk92T03NxdGRkYYOnQoevXqpZdAiYiIqGyVKgkIDw/XcxhERETlr3J8X9efUiUBgYGB+o6DiIiIytlz3ywIAB49elRokKCVldULBURERFReDCpJ372+6DwwMDMzE2PGjIGdnR0sLCxQo0YNrYWIiIgqB52TgODgYOzfvx/Lli2DWq3GypUrMXv2bDg5OWHdunX6iJGIiEgvVCr9LZWBzt0BO3fuxLp169ChQwcMHToU7dq1g7u7O1xcXLBhwwYMGDBAH3ESERFRGdO5EnD37l24uroCeNL/f/fuXQBA27Ztcfjw4bKNjoiISI9kv0+AzkmAm5sbrly5AgDw9PTEpk2bADypEBQ8UIiIiIgqPp2TgCFDhuDMmTMAgJCQEM3YgIkTJ2Ly5MllHiAREZG+cEyAjiZOnKj5744dO+L8+fOIj49H/fr10axZszINjoiISJ84RfAFOTs7o3fv3rCxscHQoUPLIiYiIiIqBy+cBBS4e/cu1q5dW1aHIyIi0ruK0B0QFhaGli1bwtLSEnZ2dujVqxcuXLhQ4j4HDx4scjDi+fPndbr+MksCiIiISHeHDh3C6NGjcezYMfz888/Izc1Fly5dkJmZ+cx9L1y4gNTUVM3SoEEDnc79QrcNJiIiqswqwlS+mJgYrddr1qyBnZ0dTp48ifbt25e4r52d3QvNzGMlgIiISA+ysrKQkZGhtWRlZT1zv/T0dACAjY3NM9t6e3vD0dERnTp1woEDB3SOUSWEEKVp2Lt37xK3379/H4cOHUJeXp7OQZS1LWdSlQ6BSO8W7LmodAhEenfsYz+9Hn/stiS9Hdv2zPeYPXu21rrQ0FDMmjWr2H2EEHjjjTdw7949HDlypNh2Fy5cwOHDh9GiRQtkZWXhm2++QWRkJA4ePPjM6sG/lbo7wNra+pnbBw0aVOoTExERVWUhISEICgrSWqdWq0vcZ8yYMTh79ix+/fXXEtt5eHjAw8ND89rX1xd//fUXFixYoJ8kYM2aNaU+KBERUWWgzzEBarX6mX/0/23s2LHYsWMHDh8+jDp16uh8vlatWmH9+vU67cOBgUREJC0D5ccFQgiBsWPHYtu2bTh48KDm+Ty6SkhIgKOjo077MAkgIiJS0OjRo/Htt99i+/btsLS0RFpaGoAn3exmZmYAnnQtXLt2DevWrQMAhIeHo169evDy8kJ2djbWr1+P6OhoREdH63RuJgFERCStilAJiIiIAAB06NBBa/2aNWswePBgAEBqaipSUlI027KzszFp0iRcu3YNZmZm8PLywq5duxAQEKDTuZkEEBERKag0k/SioqK0XgcHByM4OPiFz80kgIiIpFURbhakpOe6WdA333yDNm3awMnJCVevXgXwpH9i+/btZRocERER6Y/OSUBERASCgoIQEBCA+/fva24OVL16dYSHh5d1fERERHpjoNLfUhnonAQsXrwYK1aswLRp02BoaKhZ7+Pjg8TExDINjoiIiPRH5zEBycnJ8Pb2LrRerVaX6olHREREFYXkQwJ0rwS4urri9OnThdbv2bMHnp6eZRETERFRuTBQqfS2VAY6VwImT56M0aNH4/HjxxBC4MSJE/juu+8QFhaGlStX6iNGIiIi0gOdk4AhQ4YgNzcXwcHBePjwIfr374/atWvjq6++Qr9+/fQRIxERkV481xS5KuS57hMwYsQIjBgxArdv30Z+fj7s7OzKOi4iIiLSsxe6WVDNmjXLKg4iIqJyV0m67vVG5yTA1dW1xDssXb58+YUCIiIiovKhcxIwYcIErdc5OTlISEhATEwMJk+eXFZxERER6V1lGcWvLzonAePHjy9y/dKlSxEfH//CAREREVH5KLOBkd26ddP5OcZERERKUqn0t1QGZfYUwS1btsDGxqasDkdERKR3leUe//qicxLg7e2tNTBQCIG0tDTcunULy5YtK9PgiIiISH90TgJ69eql9drAwAC1atVChw4d0KhRo7KKi4iISO84MFAHubm5qFevHvz9/eHg4KCvmIiIiKgc6DQw0MjICB988AGysrL0FQ8REVG5kX1goM6zA1555RUkJCToIxYiIiIqRzqPCfjwww/x0Ucf4e+//0aLFi1gbm6utb1p06ZlFhwREZE+cXZAKQ0dOhTh4eHo27cvAGDcuHGabSqVCkIIqFQq5OXllX2UREREVOZKnQSsXbsWc+fORXJysj7jISIiKjcqyF0KKHUSIIQAALi4uOgtGCIiovIke3eATgMDS3p6IBEREVUuOg0MbNiw4TMTgbt3775QQEREROVF9kqATknA7NmzYW1tra9YiIiIqBzplAT069cPdnZ2+oqFiIioXMnezV3qMQGyv1FERERVjc6zA4iIiKoKjgkopfz8fH3GQUREROVM59sGExERVRWy93Qz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",
      "text/plain": [
       "<Figure size 600x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "# 示例数据：真实标签和预测标签\n",
    "y_true = np.array([0, 1, 1, 0, 1, 0, 1, 1, 0, 0])\n",
    "y_pred = np.array([0, 1, 0, 0, 1, 0, 1, 0, 0, 1])\n",
    "\n",
    "# 计算混淆矩阵\n",
    "cm = confusion_matrix(y_true, y_pred)\n",
    "\n",
    "# 输出混淆矩阵\n",
    "print(\"Confusion Matrix:\")\n",
    "print(cm)\n",
    "\n",
    "# 计算 TP, FP, FN, TN\n",
    "TN, FP, FN, TP = cm.ravel()\n",
    "print(f\"True Negative (TN): {TN}\")\n",
    "print(f\"False Positive (FP): {FP}\")\n",
    "print(f\"False Negative (FN): {FN}\")\n",
    "print(f\"True Positive (TP): {TP}\")\n",
    "\n",
    "# 绘制混淆矩阵\n",
    "plt.figure(figsize=(6, 6))\n",
    "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1'], yticklabels=['Class 0', 'Class 1'])\n",
    "plt.title('Confusion Matrix (Binary Classification)')\n",
    "plt.ylabel('True Label')\n",
    "plt.xlabel('Predicted Label')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "89616501-1f57-48a3-8285-4dbe84f79439",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion Matrix (Multi-class):\n",
      "[[3 0 0]\n",
      " [1 2 1]\n",
      " [0 1 2]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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fDSm9ejRAytXrkR2djaMjY212k6lTAL8PeyVDoGI9GTB7ktKh0BlqG8z/X6e67NNPDw8HLNnz9aYFhYWhlmzZr3wtlNTU2Fra6sxzdbWFjk5Obhz5w7s7bV73SplEkBERKS0kJAQBAUFaUwrjSpAvmerGEKIQqcXh0kAERFJS5/NAaVV+i+MnZ0dUlNTNabdunULRkZGsLa21no7vDqAiIiogvH29sa+ffs0pu3duxdeXl5a9wcAmAQQEZHEysslgv/99x/OnDmDM2fOAHhyCeCZM2eQnJwM4EnTwpAhQ9TLjx49GlevXkVQUBASEhKwatUqrFy5ElOmTNFpv2wOICIiUtipU6fQpUsX9fP8vgSBgYGIiopCSkqKOiEAAGdnZ+zatQuTJk1CREQEHBwcsHjxYp0uDwSYBBARkcTKy6jBnTt3VnfsK0xUVFSBaZ06dUJsbOwL7ZfNAURERJJiJYCIiKRloHPrfeXCJICIiKRVXpoDlMLmACIiIkmxEkBERNJSSd4cwEoAERGRpFgJICIiabFPABEREUmJlQAiIpKW7JcIshJAREQkKVYCiIhIWrL3CWASQERE0pI9CWBzABERkaRYCSAiImlxsCAiIiKSEisBREQkLQO5CwGsBBAREcmKlQAiIpIW+wQQERGRlFgJICIiack+TgCTACIikhabA4iIiEhKrAQQEZG0eIkgERERSYmVACIikhb7BBAREZGUWAkgIiJpyX6JICsBREREkmIlgIiIpCV5IYBJABERyctA8vYANgcQERFJipUAIiKSltx1AFYCiIiIpMVKABERyUvyUgArAURERJJiJYCIiKTFYYOJiIhISqwEEBGRtCQfJoBJABERyUvyHIDNAURERLJiJYCIiOQleSmAlQAiIiJJsRJARETS4iWCREREJCVWAoiISFqyXyLISgAREZGkWAkgIiJpSV4IUL4S8M8//+C///4rMD07OxtHjhxRICIiIpKGSo+PCkCxJCAlJQWtWrWCk5MTatSogcDAQI1k4N69e+jSpYtS4REREVV6iiUBH374IQwNDfH7779jz549uHDhAjp37oz79++rlxFCKBUeERFJQKXH/yoCxZKAX375BV9++SW8vLzQrVs3/Prrr6hTpw5effVV3Lt3DwCgkr3bJhERkR4plgSkpaWhZs2a6uempqbYtGkT6tWrhy5duuDW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",
      "text/plain": [
       "<Figure size 600x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "# 示例数据：真实标签和预测标签（假设有3个类别）\n",
    "y_true_multi = np.array([0, 1, 2, 1, 0, 2, 1, 2, 0, 1])\n",
    "y_pred_multi = np.array([0, 1, 1, 1, 0, 2, 0, 2, 0, 2])\n",
    "\n",
    "# 计算混淆矩阵\n",
    "cm_multi = confusion_matrix(y_true_multi, y_pred_multi)\n",
    "\n",
    "# 输出混淆矩阵\n",
    "print(\"Confusion Matrix (Multi-class):\")\n",
    "print(cm_multi)\n",
    "\n",
    "# 绘制混淆矩阵\n",
    "plt.figure(figsize=(6, 6))\n",
    "sns.heatmap(cm_multi, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1', 'Class 2'], yticklabels=['Class 0', 'Class 1', 'Class 2'])\n",
    "plt.title('Confusion Matrix (Multi-class Classification)')\n",
    "plt.ylabel('True Label')\n",
    "plt.xlabel('Predicted Label')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8ea4f7eb-7544-45b6-b47a-ebba1b171870",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.8500\n",
      "Precision: 0.8767\n",
      "Recall: 0.8258\n",
      "F1-Score: 0.8505\n"
     ]
    },
    {
     "data": {
      "image/png": "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tFQHDx5U3bp1Hc7KcldhYaFatGih/fv3U9tTjbjP3sF99g7us/dwr72juu6zYRg6ceKEmjZtqqCgykuGfT4V3NuCgoKqTHwXisJl7+A+ewf32Tu4z97DvfaO6rjPMTExTp3n840zAQAAPIlwAwAAAgrhxoPCw8M1Y8YMhYeH+7opAY377B3cZ+/gPnsP99o7asJ9rnUFxQAAILDRcwMAAAIK4QYAAAQUwg0AAAgohBsAABBQCDcumjdvnpKSkhQREaHk5GStX7++0vPXrVun5ORkRUREqFWrVnr55Ze91FL/5sp9Xr58ua699lo1atRI9erVU69evfTxxx97sbX+y9V/zxZffvmlQkJCdPnll1dvAwOEq/f5zJkzmj59ulq2bKnw8HC1bt1aixYt8lJr/Zer93np0qXq3LmzoqKiFB8fr3HjxunIkSNeaq1/+uKLLzR06FA1bdpUJpNJK1eurPIan/wOGnDaW2+9ZYSGhhoLFiwwcnJyjAceeMCIjo42fv75Z7vn79mzx4iKijIeeOABIycnx1iwYIERGhpqvPPOO15uuX9x9T4/8MADxpNPPml88803xs6dO420tDQjNDTU2Lp1q5db7l9cvc8Wx48fN1q1amWkpKQYnTt39k5j/Zg79/nGG280evToYWRmZhp79+41vv76a+PLL7/0Yqv9j6v3ef369UZQUJDx/PPPG3v27DHWr19vXHLJJcbw4cO93HL/snr1amP69OnGu+++a0gyVqxYUen5vvodJNy44IorrjAmTpxoc6x9+/bGtGnT7J7/l7/8xWjfvr3NsXvuucfo2bNntbUxELh6n+3p2LGjMXPmTE83LaC4e59TU1ONv/71r8aMGTMIN05w9T5/9NFHRkxMjHHkyBFvNC9guHqfn376aaNVq1Y2x1544QWjefPm1dbGQONMuPHV7yDDUk4qLi7Wli1blJKSYnM8JSVFGzdutHvNpk2bKpw/aNAgbd68WWfPnq22tvozd+5zeaWlpTpx4oQaNGhQHU0MCO7e58WLF2v37t2aMWNGdTcxILhzn99//31169ZNTz31lJo1a6a2bdtq6tSpKioq8kaT/ZI797l3797Ky8vT6tWrZRiGfvnlF73zzju6/vrrvdHkWsNXv4O1buNMd+Xn56ukpERxcXE2x+Pi4nTo0CG71xw6dMju+efOnVN+fr7i4+Orrb3+yp37XN6zzz6rU6dO6bbbbquOJgYEd+7zTz/9pGnTpmn9+vUKCeH/dTjDnfu8Z88ebdiwQREREVqxYoXy8/M1adIkHT16lLobB9y5z71799bSpUuVmpqq3377TefOndONN96oF1980RtNrjV89TtIz42LTCaTzXPDMCocq+p8e8dhy9X7bLFs2TI99thjysjIUOPGjaureQHD2ftcUlKikSNHaubMmWrbtq23mhcwXPn3XFpaKpPJpKVLl+qKK67QkCFDNGfOHC1ZsoTemyq4cp9zcnJ0//3369FHH9WWLVu0Zs0a7d27VxMnTvRGU2sVX/wO8p9fToqNjVVwcHCF/wo4fPhwhVRq0aRJE7vnh4SEqGHDhtXWVn/mzn22yMjI0Pjx4/X222/rmmuuqc5m+j1X7/OJEye0efNmZWdn609/+pOk8z/ChmEoJCREn3zyiQYMGOCVtvsTd/49x8fHq1mzZoqJibEe69ChgwzDUF5entq0aVOtbfZH7tzn9PR09enTRw899JAk6bLLLlN0dLT69u2rWbNm0bPuIb76HaTnxklhYWFKTk5WZmamzfHMzEz17t3b7jW9evWqcP4nn3yibt26KTQ0tNra6s/cuc/S+R6bsWPH6s0332TM3Amu3ud69epp+/bt2rZtm/UxceJEtWvXTtu2bVOPHj281XS/4s6/5z59+ujgwYM6efKk9djOnTsVFBSk5s2bV2t7/ZU79/n06dMKCrL9CQwODpb0e88CLpzPfgertVw5wFimGi5cuNDIyckxJk+ebERHRxv79u0zDMMwpk2bZowePdp6vmUK3IMPPmjk5OQYCxcuZCq4E1y9z2+++aYREhJizJ071zCbzdbH8ePHffUV/IKr97k8Zks5x9X7fOLECaN58+bGLbfcYnz//ffGunXrjDZt2hgTJkzw1VfwC67e58WLFxshISHGvHnzjN27dxsbNmwwunXrZlxxxRW++gp+4cSJE0Z2draRnZ1tSDLmzJljZGdnW6fc15TfQcKNi+bOnWu0bNnSCAsLM7p27WqsW7fO+tqYMWOMfv362Zz/+eefG126dDHCwsKMxMREY/78+V5usX9y5T7369fPkFThMWbMGO833M+4+u+5LMKN81y9zzt27DCuueYaIzIy0mjevLkxZcoU4/Tp015utf9x9T6/8MILRseOHY3IyEgjPj7eGDVqlJGXl+flVvuXzz77rNL/f1tTfgdNhkH/GwAACBzU3AAAgIBCuAEAAAGFcAMAAAIK4QYAAAQUwg0AAAgohBsAABBQCDcAACCgEG4AQFJiYqKee+4563OTyaSVK1f6rD0A3Ee4AeBzY8eOlclkkslkUkhIiBISEnTvvffq2LFjvm4aAD9EuAFQI1x33XUym83at2+fXnvtNX3wwQeaNGmSr5sFwA8RbgDUCOHh4WrSpImaN2+ulJQUpaam6pNPPrG+vnjxYnXo0EERERFq37695s2bZ3N9Xl6ebr/9djVo0EDR0dHq1q2bvv76a0nS7t27NWzYMMXFxalOnTrq3r27Pv30U69+PwDeE+LrBgBAeXv27NGaNWsUGhoqSVqwYIFmzJihl156SV26dFF2drbuvvtuRUdHa8yYMTp58qT69eunZs2a6f3331eTJk20detWlZaWSpJOnjypIUOGaNasWYqIiNA///lPDR06VD/++KMSEhJ8+VUBVAPCDYAa4cMPP1SdOnVUUlKi3377TZI0Z84cSdLf/vY3PfvssxoxYoQkKSkpSTk5OXrllVc0ZswYvfnmm/r111+VlZWlBg0aSJIuvvhi63t37txZnTt3tj6fNWuWVqxYoffff19/+tOfvPUVAXgJ4QZAjdC/f3/Nnz9fp0+f1muvvaadO3fqvvvu06+//qr9+/dr/Pjxuvvuu63nnzt3TjExMZKkbdu2qUuXLtZgU96pU6c0c+ZMffjhhzp48KDOnTunoqIi5ebmeuW7AfAuwg2AGiE6Otra2/LCCy+of//+mjlzprVnZcGCBerRo4fNNcHBwZKkyMjISt/7oYce0scff6xnnnlGF198sSIjI3XLLbeouLi4Gr4JAF8j3ACokWbMmKHBgwfr3nvvVbNmzbRnzx6NGjXK7rmXXXaZXnvtNR09etRu78369es1duxY3XTTTZLO1+Ds27evOpsPwIeYLQWgRrr66qt1ySWX6IknntBjjz2m9PR0Pf/889q5c6e2b9+uxYsXW2ty7rjjDjVp0kTDhw/Xl19+qT179ujdd9/Vpk2bJJ2vv1m+fLm2bdum//73vxo5cqS12BhA4CHcAKixpkyZogULFmjQoEF67bXXtGTJEl166aXq16+flixZoqSkJElSWFiYPvnkEzVu3FhDhgzRpZdeqtmzZ1uHrf7xj3/ooosuUu/evTV06FANGjRIXbt29eVXA1CNTIZhGL5uBAAAgKfQcwMAAAIK4QYAAAQUwg0AAAgohBsAABBQCDcAACCgEG4AAEBAIdwAAICAQrgBAAABhXADAAACCuEGAAAEFMINAAAIKIQbAAAQUP4/kiTjKWjEbQcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, precision_recall_curve\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.datasets import make_classification\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "# 生成示例数据\n",
    "X, y = make_classification(n_samples=1000, n_features=20, random_state=42)\n",
    "\n",
    "# 划分数据集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n",
    "\n",
    "# 使用逻辑回归训练模型\n",
    "model = LogisticRegression()\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 预测概率值\n",
    "y_probs = model.predict_proba(X_test)[:, 1]  # 获取正类的概率值\n",
    "\n",
    "# 预测标签\n",
    "y_pred = model.predict(X_test)\n",
    "\n",
    "# 计算准确率、精确率、召回率和 F1-Score\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "precision = precision_score(y_test, y_pred)\n",
    "recall = recall_score(y_test, y_pred)\n",
    "f1 = f1_score(y_test, y_pred)\n",
    "\n",
    "print(f'Accuracy: {accuracy:.4f}')\n",
    "print(f'Precision: {precision:.4f}')\n",
    "print(f'Recall: {recall:.4f}')\n",
    "print(f'F1-Score: {f1:.4f}')\n",
    "\n",
    "# 绘制精确率-召回率（P-R）曲线\n",
    "precision_vals, recall_vals, _ = precision_recall_curve(y_test, y_probs)\n",
    "\n",
    "plt.plot(recall_vals, precision_vals, marker='.')\n",
    "plt.xlabel('Recall')\n",
    "plt.ylabel('Precision')\n",
    "plt.title('Precision-Recall Curve')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "059769c3-63a5-48cc-a6f4-07d27a403baf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sensitivity: 0.8646\n",
      "Specificity: 0.7788\n"
     ]
    },
    {
     "data": {
      "image/png": "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1dVV4/5Kly6Nw4cPIzIyEi9evMj0db29vXH+/Hn8+OOP6NatG4yNjaVlufU+LS0tMXjwYEydOhVCiGwdj9KlS+P169c4fPgwnj9/jjdv3sDNzQ3e3t7o27cvdu7cibCwMJw9exY///wz9u3bp1VOREWenB2UiChv9OvXT3zxxRcal/3yyy/CyclJmJiYiDZt2oj169cLAOLFixdCCPXOuYmJiaJnz56iZMmSwtDQUDg7O4tRo0apdRA+c+aMaNWqlTA3NxdmZmaiSpUq4scff8w0N02df9+3ZMkSUbZsWaFUKoWbm5tYv369tCwwMFDUrVtXWFpaCjMzM1GvXj1x6NAhafn7naV3794typcvLwwMDISrq6sQImNn6XS1a9cWAMTff/+dYVluvc/79+8LAwMDsXXrViHEh4+HEEIMHz5c2NnZCQBi6tSpQgghkpKShJ+fnyhdurRQKpWiePHionPnzuLSpUuZ5kREGSmEEELeUoyIiIhIHrw0RkREREUWCyEiIiIqslgIERERUZHFQoiIiIiKLBZCREREVGSxECIiIqIii4UQERERFVkshIiIiKjIYiFERERERRYLISIiIiqyWAgRERFRkcVCiIiIiIqs/wPAHehx2Pt95QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.8887\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import confusion_matrix, roc_curve, auc\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.datasets import make_classification\n",
    "\n",
    "# 生成示例数据\n",
    "X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_classes=2, random_state=42)\n",
    "\n",
    "# 数据集分割\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
    "\n",
    "# 使用逻辑回归训练模型\n",
    "model = LogisticRegression()\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 预测测试集\n",
    "y_pred = model.predict(X_test)\n",
    "y_probs = model.predict_proba(X_test)[:, 1]  # 获取正类的预测概率\n",
    "\n",
    "# 计算混淆矩阵\n",
    "tn, fp, fn, tp = confusion_matrix(y_test, y_pred).ravel()\n",
    "\n",
    "# 计算敏感性（召回率）和特异性\n",
    "sensitivity = tp / (tp + fn)\n",
    "specificity = tn / (tn + fp)\n",
    "\n",
    "# 输出敏感性和特异性\n",
    "print(f\"Sensitivity: {sensitivity:.4f}\")\n",
    "print(f\"Specificity: {specificity:.4f}\")\n",
    "\n",
    "# 计算ROC曲线和AUC\n",
    "fpr, tpr, thresholds = roc_curve(y_test, y_probs)\n",
    "roc_auc = auc(fpr, tpr)\n",
    "\n",
    "# 绘制ROC曲线\n",
    "plt.figure()\n",
    "plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (AUC = {roc_auc:.2f})')\n",
    "plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\n",
    "plt.xlim([0.0, 1.0])\n",
    "plt.ylim([0.0, 1.05])\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('True Positive Rate')\n",
    "plt.title('Receiver Operating Characteristic (ROC) Curve')\n",
    "plt.legend(loc='lower right')\n",
    "plt.show()\n",
    "\n",
    "# 输出AUC值\n",
    "print(f\"AUC: {roc_auc:.4f}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2d6e1c15-2207-48fc-90b0-cfb993965816",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
